/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jeelabs.lab2;

import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.model.SelectItem;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

/**
 *
 * @author bastian
 */
@ManagedBean(name="BibliotekaBean")
@RequestScoped
public class BibliotekaBean {

    /**
     * Uwaga! PersistenceContext nie może być używany przez wiele wątków na raz!
     * Jeśli JSF bean nie jest typu request lub chcemy użyć Persistence w innych komponentach
     * należy wykorzystać:
     * @PersistenceUnit
     * private EntityManagerFactory emf;
     */
    @PersistenceContext
    private EntityManager em;

    /** Creates a new instance of BibliotekaBean */
    public BibliotekaBean() {
    }

    public List<Cave> getCaves() {
        return em.createQuery("SELECT k FROM Cave k").getResultList();
    }

//    public List<Autor> getAutorzy() {
//        return em.createNamedQuery("Autor.findAll").getResultList();
//    }

    public List<SelectItem> getCavesAsSelectItems() {
        ArrayList<SelectItem> lista = new ArrayList<SelectItem>();
        for (Object o : getCaves()) {
            Cave a = (Cave) o;
            lista.add(new SelectItem(a, a.getDimension()));
        }

        return lista;
    }
}
